package cn.com.ejiakanghu.dto;

import org.linlinjava.litemall.db.domain.AgedmallGoodsSpecificationInfo;

import java.util.List;

/**
 * 商品特色服务SKU规格分类选项列表数据，例如：上门服务、保修服务、医疗保修、都应该定义在该SKU分类中，可灵活增加额外的收费服务项目
 */
public class GoodsExtendSpecInfo {

    /**
     * 规格分类ID，唯一
     */
    private int id;

    /**
     * 规格分类名称，例如：必选配件、更换配件、增加配件、上门服务、医疗保险
     */
    private String name;

    /**
     * 规格分类说明，例如：让健康生活多一份保障
     */
    private String desc;

    /**
     * 至少选几个
     * 值可能性：
     * 0 	| [number] 	| 不限制，可以不选	| 默认值
     * 1 	| [number] 	| 至少选1个
     * 2 	| [number] 	| 至少选2个
     * N 	| [number] 	| 至少选N个
     */
    private int limit;

    /**
     * 是否允许多选
     * 值可能性：
     * 0 	| [number] 	| 仅单选 | 默认值
     * 1 	| [number] 	| 可多选
     */
    private int multiple;

    /**
     * 规格选项列表
     */
    private List<GoodsExtendSpecItemInfo> list;

    public static GoodsExtendSpecInfo getInstance(AgedmallGoodsSpecificationInfo agedmallGoodsSpecificationInfo, List<GoodsExtendSpecItemInfo> extendSpecItemInfos) {
        GoodsExtendSpecInfo goodsExtendSpecInfo = new GoodsExtendSpecInfo();
        goodsExtendSpecInfo.setId(agedmallGoodsSpecificationInfo.getId());
        goodsExtendSpecInfo.setDesc(agedmallGoodsSpecificationInfo.getDesc());
        goodsExtendSpecInfo.setName(agedmallGoodsSpecificationInfo.getSpecName());
        goodsExtendSpecInfo.setLimit(agedmallGoodsSpecificationInfo.getMinSelCount());
        goodsExtendSpecInfo.setMultiple(agedmallGoodsSpecificationInfo.getMultiSelFlg() ? 1 : 0);
        goodsExtendSpecInfo.setList(extendSpecItemInfos);

        return goodsExtendSpecInfo;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    public int getLimit() {
        return limit;
    }

    public void setLimit(int limit) {
        this.limit = limit;
    }

    public int getMultiple() {
        return multiple;
    }

    public void setMultiple(int multiple) {
        this.multiple = multiple;
    }

    public List<GoodsExtendSpecItemInfo> getList() {
        return list;
    }

    public void setList(List<GoodsExtendSpecItemInfo> list) {
        this.list = list;
    }
}
